#pragma once
#include "common.h"
#include "Timer.h"
class win32Container;
class win32Container
{
public:
	win32Container(
		HINSTANCE hInstance,
		const wstring wndClass,
		int ShowWnd,
		int width, 
		int height,
		bool windowed);
	LRESULT CALLBACK mWndProc(HWND hWnd,
		UINT msg,
		WPARAM wParam,
		LPARAM lParam);
	static win32Container* GetInterface();
	static win32Container* root;
	virtual int MsgLoop() = 0;
	virtual void Update() = 0;
	virtual void Draw() = 0;

	HINSTANCE		hInstance;
	HWND			hwnd = NULL;
	int				Width;
	int				Height;
	const wstring	WndClassName;
	bool			initialized = true;
	bool			mAppPaused = false;  // is the application paused?
	bool			mMinimized = false;  // is the application minimized?
	bool			mMaximized = false;  // is the application maximized?
	bool			mResizing = false;   // are the resize bars being dragged?
	bool			mFullscreenState = false;// fullscreen enabled
	ComPtr<ID3D11Device> device;
};